Unityエディタ拡張 : テクスチャ合計サイズを表示
選択しているテクスチャの合計サイズを表示するエディタ拡張
code:cs
// 選択しているテクスチャの合計サイズを表示するエディタ拡張
namespace TextureSizeViewer
{
using UnityEngine;
using UnityEditor;
public class TextureSizeViewer : ScriptableObject
{
static private readonly string[] sizeUnits = { "KB", "MB", "GB", "TB" };
static private void CalcSize()
{
ulong totalByteLength = 0;
foreach (var o in Selection.objects)
{
var texture = o as Texture2D;
if (texture != null)
{
totalByteLength += (ulong)texture.GetRawTextureData().Length;
}
}
string sizeAsText = ConvertToHumanReadableSize(totalByteLength);
EditorUtility.DisplayDialog("Total Texture Size", sizeAsText, "OK");
}
/** ********************************************************************************
* @summary バイト数を読みやすいものに変換
***********************************************************************************/
static private string ConvertToHumanReadableSize(ulong sizeInBytes)
{
var len = sizeInBytes / 1024.0;
var order = 0;
while (len >= 1024 && order < sizeUnits.Length - 1)
{
order++;
len = len / 1024;
}
return $"{len:0.##} {sizeUnitsorder}"; }
}
}